<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition  template="./../WEB-INF/templade.xhtml"
                 xmlns="http://www.w3.org/1999/xhtml"  
                 xmlns:h="http://java.sun.com/jsf/html"  
                 xmlns:p="http://primefaces.prime.com.tr/ui" 
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:ui="http://java.sun.com/jsf/facelets">

    <ui:define name="content">

        <h:form>
            <p:messages id="mensajes" 
                        showDetail="true"/>
            <h:panelGrid id="panel"
                         columns="2">
                <h:outputLabel value="#{bundle.nombres}:" 
                               for="nombre" />
                <p:inputText id="nombre" 
                             title="#{bundle.nombres}" 
                             required="true" 
                             requiredMessage="#{bundle.nombres} #{bundle.campo_requerido}"
                             value="#{personasManagedBean.persona.nombre}"/>
                <h:outputLabel value="#{bundle.apellidos}:" 
                               for="apellido" />
                <p:inputText id="apellido" 
                             value="#{personasManagedBean.persona.apellido}" 
                             title="#{bundle.apellidos}" 
                             required="true" 
                             requiredMessage="#{bundle.apellidos} #{bundle.campo_requerido}"/>
                <h:outputLabel value="#{bundle.identificacion}:" 
                               for="identificacion" />
                <p:inputText id="identificacion" 
                             value="#{personasManagedBean.persona.identificacion}" 
                             title="#{bundle.identificacion}" 
                             required="true" 
                             requiredMessage="#{bundle.identificacion} #{bundle.campo_requerido}"/>
                <h:outputLabel value="Tipo Identificacion:" for="tipoIdentificacion" />
                <p:inputText id="tipoIdentificacion" 
                             value="#{personasManagedBean.persona.tipoIdentificacion}" 
                             title="#{bundle.tipo_identificacion}" 
                             required="true" 
                             requiredMessage="#{bundle.tipo_identificacion} #{bundle.campo_requerido}"/>
                <h:outputLabel value="#{bundle.email}:" for="email" />
                <p:inputText id="email" 
                             value="#{personasManagedBean.persona.email}" 
                             title="Email" />
                <h:outputLabel value="#{bundle.empresa}:" 
                               for="empresa" />
                <h:selectOneMenu id="empresa" value="#{personasManagedBean.persona.empresa}" rendered="true"  required="true" requiredMessage="#{bundle.empresa} #{bundle.campo_requerido}">
                    <f:selectItems value="#{empresaManagedBean.itemsAvailableSelectOne}"/>
                </h:selectOneMenu>

            </h:panelGrid>

            <span/><span/>
            <p:commandButton image="ui-icon ui-icon-disk"  
                             value="#{bundle.guardar}"
                             update="panel,tabla,mensajes"
                             action="#{personasManagedBean.guardarPersona(actionEvent)}"/>              

            <span/><span/>
            <p:commandButton image="ui-icon ui-icon-document"  
                             value="#{bundle.nuevo}"
                             action="#{personasManagedBean.nuevoRegistro(actionEvent)}"
                             update="@form" />
            <span/><span/>
            <p:commandButton image="ui-icon ui-icon-trash" 
                             value="#{bundle.eliminar}"
                             action="#{personasManagedBean.eliminar(actionEvent)}"
                             update="@form"/>


            <p:dataTable value="#{personasManagedBean.personas}" 
                         var="item" 
                         id="tabla" 
                         selectionMode="single" 
                         selection="#{personasManagedBean.personaSeleccionada}" 
                         rowSelectListener="#{personasManagedBean.seleccionarRegistro()}"
                         update="panel,tabla,mensajes"
                         emptyMessage="#{bundle.no_existen_registros}">

                <p:column filterBy="#{item.nombre}" 
                          filterMatchMode="contains">
                    <f:facet name="header">
                        <h:outputText value="#{bundle.nombres}"/>
                    </f:facet>
                    <h:outputText value="#{item.nombre}"/>
                </p:column>
                <p:column filterBy="#{item.apellido}" 
                          filterMatchMode="contains">
                    <f:facet name="header">
                        <h:outputText value="#{bundle.apellidos}"/>
                    </f:facet>
                    <h:outputText value="#{item.apellido}"/>
                </p:column>
                <p:column filterBy="#{item.identificacion}" 
                          filterMatchMode="contains">
                    <f:facet name="header">
                        <h:outputText value="#{bundle.identificacion}"/>
                    </f:facet>
                    <h:outputText value="#{item.identificacion}"/>
                </p:column>
                <p:column filterBy="#{item.tipoIdentificacion}" 
                          filterMatchMode="contains">
                    <f:facet name="header">
                        <h:outputText value="#{bundle.tipo_identificacion}"/>
                    </f:facet>
                    <h:outputText value="#{item.tipoIdentificacion}"/>
                </p:column>
                <p:column >
                    <f:facet name="header">
                        <h:outputText value="#{bundle.email}"/>
                    </f:facet>
                    <h:outputText value="#{item.email}"/>
                </p:column>
                <p:column filterBy="#{item.empresa.razonSocial}" 
                          filterMatchMode="contains">
                    <f:facet name="header">
                        <h:outputText value="#{bundle.empresa}"/>
                    </f:facet>
                    <h:outputText value="#{item.empresa.razonSocial}"/>
                </p:column>
            </p:dataTable>
        </h:form>
    </ui:define>
</ui:composition>
